package com.david.controller;

import cn.dev33.satoken.annotation.SaCheckPermission;
import com.david.entity.Message;
import com.david.service.Impl.ConsoleService;
import com.david.vo.CardBean;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;

/**
 * @author David
 */
@RestController
@RequestMapping("/Admin")
public class ConsoleController {

    @Resource
    ConsoleService consoleService;

    /**
     * 控制台主界面
     * @return 返回主界面所需数据
     */
    @GetMapping("/console")
    public CardBean consoleView(){
        return consoleService.countConsole();
    }

    /**
     * 增加留言
     * @return 返回留言是否成功
     * @param message 输入的留言
     */
    @SaCheckPermission("add-message")
    @PostMapping("/addMessage")
    public CardBean addMessage(@RequestBody @Validated Message message){
        return consoleService.addMessage(message);
    }

    /**
     * 显示留言
     * @return 返回数据库中所有留言
     * @param limit 分页中的每页的限制
     * @param page 分页中此时在多少页
     */
    @GetMapping("/getMessage")
    public CardBean getMessage(Integer page, Integer limit){
        return consoleService.getMessage(page, limit);
    }

    /**
     * 上传图片
     * @return 返回上传是否成功
     * @param file 上传的文件
     */
    @SaCheckPermission("add-message")
    @PostMapping("/uploadImage")
    public CardBean uploadImage(@RequestParam("file") MultipartFile file){
        return consoleService.uploadImage(file);
    }
}
